﻿using AutoMapper;
using BCDto.TMS.LearnTrain;
using BCDto.TMS.LearnTrain.DriverLearningTrainRecord;
using BCDto.TMS.LearnTrain.LearnTrainStatistics;
using BCDto.TMS.LearnTrain.PendingLearningVehicle;
using BCDto.TMS.LearnTrain.VehicleTrainingScheduleRecord;
using BCEntity.TMS.LearningTrain.DriverLearningTrainRecord;
using BCEntity.TMS.LearningTrain.LearnTrainStatistics;
using BCEntity.TMS.LearningTrain.PendingLearningVehicle;
using BCEntity.TMS.LearningTrain.VehicleTrainingScheduleRecord;
using BCEntity.TMS.LearnTrain;
using BCEntity.TMS.LearnTrain.LearnTrainStatistics;

namespace BCService.MapperProfiles.TMS.LearnTrain
{
    public class LearnTrainProfile: Profile
    {
        public LearnTrainProfile()
        {


            CreateMap<PendingLearningVehicleEntity, PendingLearningVehicleDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleRecordDto, PendingLearningVehicleEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<PendingLearningVehicleEntity, PendingLearningVehicleViewEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<PendingLearningVehicleViewEntity, PendingLearningVehicleEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<PendingLearningVehicleDto, PendingLearningVehicleViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<PendingLearningVehicleViewDto, PendingLearningVehicleDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<PendingLearningVehicleViewDto, PendingLearningVehicleViewEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<PendingLearningVehicleViewEntity, PendingLearningVehicleViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();



            CreateMap<VehicleTrainingScheduleRecordViewDto, VehicleTrainingScheduleRecordDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleRecordDto, VehicleTrainingScheduleRecordViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<VehicleTrainingScheduleRecordEntity, VehicleTrainingScheduleRecordDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleRecordDto, VehicleTrainingScheduleRecordEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<VehicleTrainingScheduleRecordViewDto, PendingLearningVehicleDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleRecordDto, VehicleTrainingScheduleRecordViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<VehicleTrainingScheduleRecordViewEntity, VehicleTrainingScheduleRecordViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleRecordViewDto, VehicleTrainingScheduleRecordViewEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<VehicleTrainingScheduleStatisticsEntity, VehicleTrainingScheduleStatisticsDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleStatisticsDto, VehicleTrainingScheduleStatisticsEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            
            CreateMap<VehicleTrainingScheduleDetailEntity, VehicleTrainingScheduleDetailDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<VehicleTrainingScheduleDetailDto, VehicleTrainingScheduleDetailEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<ExaminationStatisticsEntity, ExaminationStatisticsDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<ExaminationStatisticsDto, ExaminationStatisticsEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<LearnTrainExaminationDriverEntity, LearnTrainExaminationDriverDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<LearnTrainExaminationDriverDto, LearnTrainExaminationDriverEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<LearnTrainMonthAnalysisEntity, LearnTrainMonthAnalysisDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<LearnTrainMonthAnalysisDto, LearnTrainMonthAnalysisEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<AlreadyLearningDriverEntity, AlreadyLearningDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<AlreadyLearningDto, AlreadyLearningDriverEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<ExamineDriverCountEntity, ExamineDriverCountDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<ExamineDriverCountDto, ExamineDriverCountEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<DriverLearningTrainRecordEntity, DriverLearningTrainRecordDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<DriverLearningTrainRecordDto, DriverLearningTrainRecordEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<DriverLearningTrainRecordEntity, DriverLearningTrainRecordViewEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<DriverLearningTrainRecordDto, DriverLearningTrainRecordViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();

            CreateMap<DriverLearningTrainRecordViewEntity, DriverLearningTrainRecordViewDto>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            CreateMap<DriverLearningTrainRecordViewDto, DriverLearningTrainRecordViewEntity>().IgnoreAllPropertiesWithAnInaccessibleSetter();
            

        }
    }
}
